pmsg(" ";TDAY;" ";TD;" ";" ";TIMEDAY;" ";"Days to appointment";" ";@C240;DIFF;@C7|2|1|N|Y|S|)
force(y)
ret
WHERE:
if DAYN = (2) do
{
if APDR = (1) then goto OFF?
}
if FLAG = ("P") do
{
if DAYN = (3) do
{
if APDR = (4) then goto OFF?
}
if DAYN = (5) do
{
if APDR = (2) then goto OFF?
}
if DAYN = (6) do
{
if APDR = (3) then goto OFF?
}
if apdr = (7) do
{
if dayn = (2) then goto OFF?
if dayn = (3) then goto OFF?
if dayn = (4) then goto OFF?
}
}
if flag = ("A") do
{
if apdr = (6) do
{
if dayn = (4) do
{
if patam[1] = ("") then patam[1] = ("AWAY")
}
}
}
OFF?RET:
ret
OFF?:
if patpm[1] = ("") then patpm[1] = ("AWAY")
goto off?ret
NAUGHTY:
BLANK = ("")
if FLAG = ("A") do
{
PATAM[CNTR] = ("")
ADAM[CNTR] = ("")
TELAM[CNTR] = (0)
RECAM[CNTR] = (0)
}
if FLAG = ("P") do
{
PATPM[CNTR] = ("")
ADPM[CNTR] = ("")
TELPM[CNTR] = (0)
RECPM[CNTR] = (0)
}
SEEN_RET:
save(APPOINTS|N|N)
find(M|DRAP||)
ret
SETTIME:
find(B|APSET|OP_ERROR|)
if SECSETAM[APDR] = (000) goto SETPM
SETIME = (TIMESETAM[APDR])
SCR.CTR = (SECONDS2[apdr]/SECSETAM[APDR])
if SCR.CTR > (24) then SCR.CTR = (24)
TIMEAM[1] =mid(SETIME|1|5|)
CNTR = (1)
for(CNTR|2|SCR.CTR|1)
{
SETIME = (SETIME+SECSETAM[APDR])
TIMEAM[CNTR] =mid(SETIME|1|5|)
}
SETPM:
if SECSETPM[APDR] = (000) ret
SETIME = (TIMESETPM[APDR])
SCR.CTR = (SECONDS2[apdr]/SECSETPM[APDR])
if SCR.CTR > (24) then SCR.CTR = (24)
TIMEPM[1] =mid(SETIME|1|5|)
CNTR = (1)
for(CNTR|2|SCR.CTR|1)
{
SETIME = (SETIME+SECSETPM[APDR])
TIMEPM[CNTR] =mid(SETIME|1|5|)
}
ret
HOLS:
DAYN =day(DRDATE)
DAY =day(DRDATE)
SUNDAY:
if DAYN = (1) do
{
if LAG <> ("") do
{
gosub ADDSUB
goto HOLS
}
else
{
DRDATE = (DRDATE+1)
goto HOLS
}
}
MONDAY:
DAYOFF:
if DAYNO[APDR] = (DAYN) do
{
if patam[1] = ("") then patam[1] = ("AWAY")
if patpm[1] = ("") then patpm[1] = ("AWAY")
goto HOLIDRET
}
if apdr = (6) do
{
if dayn = (5) do
{
if patam[1] = ("") then patam[1] = ("AWAY")
if patpm[1] = ("") then patpm[1] = ("AWAY")
goto HOLIDRET
}
if dayn = (6) do
{
if patam[1] = ("") then patam[1] = ("AWAY")
if patpm[1] = ("") then patpm[1] = ("AWAY")
goto HOLIDRET
}
}
OFFHOL:
if DRDATE => (HD1[APDR]) do
{
if DRDATE <= (HD2[APDR]) do
{
gosub HOLIDAY
goto HOLIDRET
}
}
if DRDATE => (HD3[APDR]) do
{
if DRDATE <= (HD4[APDR]) do
{
gosub HOLIDAY
goto HOLIDRET
}
}
HOLIDRET:
ret
ADDSUB:
if LAG = ("A") then DRDATE = (DRDATE+1)
if LAG = ("B") then DRDATE = (DRDATE-1)
ret
HOLIDAY:
if patam[1] = ("") then patam[1] = ("AWAY")
if patpm[1] = ("") then patpm[1] = ("AWAY")
ret
SETUP:
gosub SAVE
run("APSET")
OP_ERROR:
pmsg("FILE OPEN ERROR"|30|12|Y|N|S|)
run("FAPPOINT")
FREE:
run("FREEAP")
LOCKED:
pmsg("Record in use by another station - press a key"|10|19|y|n|s|)
run("FAPPOINT")
f_error:
lferrn(error)
pmsg("Note this number.Then press a key 4 times : ";error|20|19|n|n|s|)
pmsg(""|1|1|y|n||)
pmsg(""|1|1|y|n||)
pmsg(""|1|1|y|n||)
pmsg(""|1|1|y|n||)
run("FAPPOINT")
MEMOSUB:
FLAG = (FLAG)
find(b|mem_name|runmemo2|)
if flag = ("A") then mem_name = (patam[cntr])
if flag = ("P") then mem_name = (patpm[cntr])
if mem_name = ("") then mem_name = ("A")
mem_drap2 = (drap)
save(memory|n|y|)
runmemo2:
gosub save
clrlne(1|25)
run("MEMO2")
EXIT:
gosub SAVE
find(B|DRDATE||)
find(B|MEM_NAME|EXITAGAIN|)
MEM_DRAP2 = (DRAP)
MEM_NAME = ("A")
save(MEMORY|N|y|)
EXITAGAIN:
run("recmenu")
DELT.SCR:
date(dateap|g)
trap(q|g|system)
saves(1)
window(10|10|3|60)
pmsg("TODAY'S DATE SHOULD BE : ";DATEAP; "IF IT IS WRONG PRESS ESC "|1|1|n|n||)
pmsg("AND CHANGE DATE ON THE SERVER NOW.PRESS RET AND WAIT"|1|2|n|n||)
enter(dud||||n|y|n|59|2|n)
REC.DELT:
date(dateap|g)
blank = ("")
ycntr = (1)
find(b|drdate|ttt|n)
ifna(APPOINTS|G|TTT)
if DRDATE => (DATEAP) GOTO TTT
ROUND:
stop_p =loc("."|patam[ycntr]|1||27)
STOP_P2 = (27-STOP_P)
mid(PATAM[YCNTR]|STOP_P|STOP_P2|BLANK|)
PATIENT.NAME = (PATAM[YCNTR])
find(M|PATIENT.NAME|NOPATFIN|)
SEEN = (DRDATE)
DATE_SEEN = (SEEN)
save(PATIENT|N|Y)
NOPATFIN:
STOP_P =loc("."|PATPM[YCNTR]|1||27)
STOP_P2 = (27-STOP_P)
mid(PATPM[YCNTR]|STOP_P|STOP_P2|BLANK|)
PATIENT.NAME = (PATPM[YCNTR])
find(M|PATIENT.NAME|NOPATFAT|)
SEEN = (DRDATE)
DATE_SEEN = (SEEN)
save(PATIENT|N|Y)
NOPATFAT:
YCNTR = (YCNTR+1)
if YCNTR > (24) goto KILLIT
goto ROUND
KILLIT:
MEM_SEEN = (0)
for(YCNTR|1|24|1)
{
if PATAM[YCNTR] > ("") then MEM_SEEN = (MEM_SEEN+1)
if PATPM[YCNTR] > ("") then MEM_SEEN = (MEM_SEEN+1)
}
REF_COD = (APDR)
find(M|REF_COD||)
REF_COD = (APDR)
NUM_SEEN = (NUM_SEEN+MEM_SEEN)
MEM_SEEN = (0)
save(REFER|N|Y)
del(APPOINTS|N)
trap(Q|G|MENU)
goto rec.delt
TTT:
clr(appoints|b)
redsp(1)
ret
SYSTEM:
run("recmenu")
TRAPS:
trap(q|g|menu)
trap(5|I)
trap(L|I)
trap(6|I)
trap(4|I)
trap(F|I)
trap(7|I)
trap(9|I)
trap(3|I)
trap(1|I)
trap(D|I)
trap(T|I)
trap(C|I)
trap(b|i)
trap(G|I)
trap(J|I)
trap(H|I)
trap(R|I)
trap(L|D)
trap(S|I)
ret
TRAP:
trap(Q|G|MENU)
trap(o|g|f_error)
trap(5|S|ENDER)
trap(4|G|MEMOSUB)
trap(7|G|VAL)
trap(9|G|GAR)
trap(3|G|NUN)
trap(1|G|PAW)
trap(D|G|DAY)
trap(T|G|tr)
trap(C|G|DAYMINUS)
trap(B|G|WEEKMINUS)
trap(G|G|WEEK)
trap(H|S|twin)
trap(R|I)
trap(F|G|CLEARAPPS)
trap(S|G|TODAY)
trap(L|G|LOCKED)
ret
SAVEMEM:
scrn(l)
cursor(N)
date(TD|G)
LAG = ("")
FINDFREE:
APDR = (CHOICE)
DRCTR = (0)
DRDATE = (TD)
dayn =day(drdate)
DAY =day(DRDATE)
DRNAMEAP = (DRNAME[APDR])
gosub skip
FREEAPDR = (APDR)
find(M|DRAP|ITSNOT|N)
ITSNOT:
ifna(APPOINTS|S|ITSNOTTHER)
TESTFREEAM:
if SECSETAM[APDR] = (0) goto TESTFREEPM
if apdr = (6) then if dayn = (4) goto testfreepm
gosub hols
if patam[1] = ("AWAY") goto testnext
if patam[1] = (".AWAY") goto testnext
SETIME = (TIMESETAM[APDR])
SCR.CTR = (SECONDS2[apdr]/SECSETAM[APDR])
if SCR.CTR > (24) then SCR.CTR = (24)
for(CNTR|1|SCR.CTR|1)
{
if PATAM[CNTR] = ("") do
{
FLAG = ("A")
cursor(y)
scrn(u)
goto patamx
}
}
TESTFREEPM:
if SECSETPM[APDR] = (0) goto TESTNEXT
if apdr = (7) do
{
if dayn = (2) goto testnext
if dayn = (3) goto testnext
if dayn = (4) goto testnext
}
if patpm[1] = (".AWAY") goto testnext
if patpm[1] = ("AWAY") goto testnext
SETIME = (TIMESETPM[APDR])
SCR.CTR = (SECONDS2[APDR]/SECSETPM[APDR])
if SCR.CTR > (24) then SCR.CTR = (24)
for(CNTR|1|SCR.CTR|1)
{
if PATPM[CNTR] = ("") do
{
FLAG = ("P")
cursor(y)
scrn(u)
goto patpmx
}
if CNTR = (SCR.CTR) goto TESTNEXT
}
TESTNEXT:
APDR = (CHOICE)
FREEAPDR = (APDR)
DRCTR = (DRCTR+1)
DRDATE = (TD+DRCTR)
dayn =day(drdate)
if DRCTR > (28) do
{
DRDATE = (TD)
goto FREERET
}
gosub skip
find(M|DRAP|ITSNOT|N)
goto TESTFREEAM
FREERET:
cursor(y)
scrn(u)
if flag = ("A") goto patamx
if flag <> ("A") goto patpmx
goto start
SKIP:
if apdr < (6) then if dayn = (7) goto testsub
if dayn = (1) goto testsub
if apdr = (1) then if dayn = (3) goto testsub
if apdr = (2) then if dayn = (4) goto testsub
if apdr = (3) then if dayn = (4) goto testsub
if apdr = (4) then if dayn = (5) goto testsub
if apdr = (6) then if dayn = (5) goto testsub
if apdr = (6) then if dayn = (6) goto testsub
if apdr = (8) do
{
if dayn < (2) goto testsub
if dayn > (4) goto testsub
}
if apdr = (9) do
{
if dayn <> (4) goto testsub
}
if apdr = (10) do
{
if dayn < (5) goto testsub
if dayn > (6) goto testsub
}
if apdr = (11) do
{
if dayn <> (7) goto testsub
}
ret
TESTSUB:
pops
goto testnext
ITSNOTTHER:
MEMAPDR = (APDR)
MEMDRNAME = (DRNAME[APDR])
MEMDRDATE = (DRDATE)
clr(APPOINTS|B)
APDR = (MEMAPDR)
DRNAME[APDR] = (MEMDRNAME)
DRDATE = (MEMDRDATE)
gosub SETTIME
DRNAMEAP = (DRNAME[APDR])
ret
CLEARAPPS:
for(CNTR1|1|24|1)
{
if PATAM[CNTR1] > ("") goto APSAVE
if PATPM[CNTR1] > ("") goto APSAVE
}
goto NOAPSAVE
APSAVE:
save(APPOINTS|N|Y)
gosub ENDER
NOAPSAVE:
clr(APPOINTS|B)
trap(%|I)
gosub TRAPS
trap(Q|i)
mount(SLEEP|S)
pmsg(""|1|1|Y|N||)
trap(%|D)
gosub TRAP
goto start
ENDER:
saves(1)
window(1|24|23|79)
pmsg("BACKING UP"|40|12|N|N|S|)
dos("c:")
dos("cd\systas")
dos("ncopy p:appoints.m")
dos("ncopy p:apset.m")
dos("i:")
redsp(1)
ret
AGSX:
run("PATREC")
\SSNEWAP
MORNING Appointments for ┌───────────────
──────────────────────────────────────────────────────────────┐ │ p :p p p p p p p p p p p p p p p p p p p p p p p p
p p p p p p p p p p p:p p │ │ p :p p p :p
p │ │ p :p p p :p
p │ │ p :p p p :p p │
│ p :p p p :p p │ │ p :p
p p :p p │ │ p :p
p p :p p │ │ p :p p p :p
p │ │ p :p p p p :p
p │ │ p p p p p p:p p p p p :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p │
│ p p p p p p:p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p:p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p │ │ p p p p p p:p p p p p p p p
p p p p p p p p p p p p p p p p p p p p p p p p p p p:p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p │ └───────────────────────────────
──────────────────────────────────────────────┘
\
DRNAMEAP 15 A 37 1
DAY 9 A 52 1
DRDATE 8 S 62 1
TIMEAM 1 5 A 4 3
PATAM 1 27 A 10 3
RECAM 1 1 N 38 3
TIMEAM 13 5 A 43 3
PATAM 13 27 A 49 3
RECAM 13 1 N 77 3
TIMEAM 2 5 A 4 4
PATAM 2 27 A 10 4
RECAM 2 1 N 38 4
TIMEAM 14 5 A 43 4
PATAM 14 27 A 49 4
RECAM 14 1 N 77 4
TIMEAM 3 5 A 4 5
PATAM 3 27 A 10 5
RECAM 3 1 N 38 5
TIMEAM 15 5 A 43 5
PATAM 15 27 A 49 5
RECAM 15 1 N 77 5
TIMEAM 4 5 A 4 6
PATAM 4 27 A 10 6
RECAM 4 1 N 38 6
TIMEAM 16 5 A 43 6
PATAM 16 27 A 49 6
RECAM 16 1 N 77 6
TIMEAM 5 5 A 4 7
PATAM 5 27 A 10 7
RECAM 5 1 N 38 7
TIMEAM 17 5 A 43 7
PATAM 17 27 A 49 7
RECAM 17 1 N 77 7
TIMEAM 6 5 A 4 8
PATAM 6 27 A 10 8
RECAM 6 1 N 38 8
TIMEAM 18 5 A 43 8
PATAM 18 27 A 49 8
RECAM 18 1 N 77 8
TIMEAM 7 5 A 4 9
PATAM 7 27 A 10 9
RECAM 7 1 N 38 9
TIMEAM 19 5 A 43 9
PATAM 19 27 A 49 9
RECAM 19 1 N 77 9
TIMEAM 8 5 A 410
PATAM 8 27 A 1010
RECAM 8 1 N 3810
TIMEAM 20 5 A 4310
PATAM 20 27 A 4910
RECAM 20 1 N 7710
TIMEAM 9 5 A 411
PATAM 9 27 A 1011
RECAM 9 1 N 3811
TIMEAM 21 5 A 4311
PATAM 21 27 A 4911
RECAM 21 1 N 7711
TIMEAM 10 5 A 412
PATAM 10 27 A 1012
TIMEAM 22 5 A 4312
PATAM 22 27 A 4912
RECAM 22 1 N 7712
TIMEAM 11 5 A 413
PATAM 11 27 A 1013
RECAM 11 1 N 3813
TIMEAM 23 5 A 4313
PATAM 23 27 A 4913
RECAM 23 1 N 7713
TIMEAM 12 5 A 414
PATAM 12 27 A 1014
RECAM 12 1 N 3814
TIMEAM 24 5 A 4314
PATAM 24 27 A 4914
RECAM 24 1 N 7714
\
\SSPATPM
EVENING Appointments for on ┌───────────────
──────────────────────────────────────────────────────────────┐ │ p :p p p p p p p p p p p p p p p p p p p p p p p p
p p p p p p :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p │ │ p :p p p :p
p │ │ p :p p p :p
p │ │ p :p p p :p p │
│ p :p p p :p p │ │ p :p
p p :p p │ │ p :p
p p :p p │ │ p :p p p :p
p │ │ p :p p p :p
p │ │ p p p p p p:p p p :p p │
│ p :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p │ │ p p p p p p:p p p p p p p p
p p p p p p p p p p p p p p p p p p p p p p p p p p p p:p p │ └───────────────────────────────